// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: 'cloud1-2ga6780q302b7f4a'
}) // 使用当前云环境
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  const { OPENID } = cloud.getWXContext()
  console.log('开始执行adminAddEquipment云函数')
  console.log('传入参数:', event)
  
  try {
    // 验证管理员身份
    console.log('开始验证管理员身份')
    const result = await cloud.callFunction({
      name: 'checkAdminAuth',
      data: {
        adminId: event.adminId || '',
        token: event.token || ''
      }
    })
    
    const { code, data } = result.result
    console.log('管理员身份验证结果:', code, data)
    
    if (code !== 0 || !data) {
      return {
        code: 401,
        data: null,
        message: '未授权访问'
      }
    }
    
    // 参数验证
    if (!event.equipment || !event.equipment.name) {
      return {
        code: -1,
        data: null,
        message: '装备信息不完整'
      }
    }
    
    // 构建装备数据
    const equipmentData = {
      name: event.equipment.name,
      description: event.equipment.description || '',
      category: event.equipment.category || '其他',
      imageUrl: event.equipment.imageUrl || '',
      creditRequired: event.equipment.creditRequired || 60,
      status: event.equipment.status === 1 ? '可借用' : '不可借用', // 转换为文本状态
      borrowCount: 0, // 借用次数
      createTime: db.serverDate(),
      updateTime: db.serverDate()
    }
    
    // 确保集合存在
    console.log('开始检查equipment集合是否存在')
    try {
      await db.createCollection('equipment').catch(err => {
        // 如果集合已存在，会抛出错误，我们可以忽略这个错误
        console.log('创建集合结果 (可能已存在):', err)
      })
      console.log('集合检查/创建完成')
    } catch (error) {
      console.error('创建集合错误 (忽略):', error)
    }
    
    // 添加装备
    console.log('开始添加装备:', equipmentData)
    let res = null
    
    try {
      res = await db.collection('equipment').add({
        data: equipmentData
      })
      console.log('添加装备成功，ID:', res._id)
    } catch (err) {
      console.error('添加装备失败:', err)
      return {
        code: 500,
        data: null,
        message: '添加装备失败: ' + err.message
      }
    }
    
    console.log('云函数执行成功')
    return {
      code: 0,
      data: {
        _id: res._id
      },
      message: '添加装备成功'
    }
  } catch (err) {
    console.error('云函数执行出错:', err)
    return {
      code: 500,
      data: null,
      message: '添加装备失败: ' + err.message
    }
  }
} 